package map;

import javax.xml.xpath.XPathVariableResolver;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

/**
 *
 */

public class ForEachDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("语文", 99);
        map.put("数学", 100);
        map.put("英语", 88);
        map.put("物理", 96);
        map.put("化学", 99);
        System.out.println(map);
        //获取集合中所有的key
        Set<String> keySet = map.keySet();
        /*
        keySet.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println("key:" + s);
            }
        });
        */
        //使用forEach遍历所有键（key）
        keySet.forEach(s -> System.out.println("key:" + s));

        //使用ForEach遍历所有值（value）
        Collection<Integer> value = map.values();          //获取所有的value
        value.forEach(v -> System.out.println("value:" + v));

        //使用forEach获取所有键值对
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();  //获取集合中所有键值对
        entrySet.forEach(e-> System.out.println("key:"+e.getKey() + ",value:" + e.getValue()));
        System.out.println("----------------");

        //使用forEach可以遍历双列集合
        map.forEach((k, v) -> System.out.println("key:" + k));      //遍历key
        map.forEach((k, v) -> System.out.println("value:" + v));    //遍历value
        map.forEach((k, v) -> System.out.println("key:" + k + ",value:" + v));  //遍历键值对


    }
}
